package com.feixiang.feixiangpicturebackend.model.enums;

import cn.hutool.core.util.ObjUtil;
import lombok.Getter;

import java.util.HashMap;
import java.util.Map;

/**
 * 用户角色枚举
 */
@Getter
public enum UserRoleEnum {

    USER("普通用户", "user"),
    VIP("会员", "vip"),
    ADMIN("管理员", "admin");
    private final String text;
    private final String value;


    UserRoleEnum(String text, String value) {
        this.text = text;
        this.value = value;
    }

    /**
     * 根据 value 获取枚举
     * @param value
     * @return
     */
    public static UserRoleEnum getEnumByValue(String value) {
       if(ObjUtil.isEmpty(value)){
           return null;
       }
       for (UserRoleEnum userRoleEnum : UserRoleEnum.values()) {
           if (userRoleEnum.value.equals(value)) {
               return userRoleEnum;
           }
       }
       return null;
   }
   //这样for比较慢，把枚举值放到map中，key为value，value为枚举对象，这样就可以直接根据value获取枚举对象了
   private static final Map<String, UserRoleEnum> enumMap = new HashMap<>();
    static {
        for (UserRoleEnum value : UserRoleEnum.values()) {
            enumMap.put(value.value, value);
        }
    }
}
